草庐IT

ASP.NET MVC - 安全

全部标签

c# - 如何部署具有多个区域的 asp.net mvc 4 应用程序

我关注了this制作可插入的asp.netmvc4应用程序的文章但是在部署应用程序时遇到问题。在我的解决方案中,MainProj是主项目,所有其他项目都在area文件夹中。每个项目都有其模型、View和Controller。我已经在MainProj中给出了所有子项目(区域文件夹中的项目)的引用。现在,当尝试部署MainProj时,它仅发布主项目及其View(在本例中为MainProj),区域文件夹中的项目未部署(例如:Cart、CRM)。即使我在主项目(MainProj)中添加区域(exCRM)中项目的引用,也只有区域(exCRM)中项目的ddl部署在bin文件夹中,区域(CRM)中没

c# - OData 增量补丁安全

我在WebAPI2中使用Delta为我的用户类创建了一个有效的PATCH。通过使用.patch方法,我可以轻松地仅检测发送过来的更改,然后进行相应更新,而不必接收整个用户!问题是我想保护几个字段,因此它们永远不会更新。我在SO上看到了一个示例,但它没有利用Delta,而是看起来稍微过时了,实际上所有的补丁代码都是手工编写的。有没有一种方法可以轻松地告诉OData的补丁跳过您指定的属性(也许我需要覆盖补丁并告诉它避免某些属性)?我什至要如何开始做这件事(或者我应该搜索/研究什么才能开始)?Action过滤器/验证在这里起作用吗?我是否研究模型绑定(bind)?它是覆盖补丁吗?谢谢!

c# - ASP.NET MVC(异步)CurrentCulture 不在 Controller 和 View 之间共享

我有一个以.NETFramework4.7.1为目标的ASP.NETMVC4应用程序,如果操作包含异步调用,则存在文化在Controller和View之间不共享的问题。我正在引用NuGet包Microsoft.AspNet.Mvc5.2.3(并且可以在5.2.4中复制)。这是Controller中的代码:publicclassCulturesTestController:Controller{publicasyncTaskIndex(stringvalue){Thread.CurrentThread.CurrentCulture=CultureInfo.GetCultureInfo("

c# - ASP.NET Core 2.1 中的数据保护仅适用于一台机器

我正在使用ASP.NETCoreDataProtectionsystem使用应用程序A加密数据并使用应用程序B解密数据。在开发机器上运行时,加密和解密都可以工作,但是当应用程序B移动到生产机器时,它不再能够解密,因为IDataProtector.Unprotect方法抛出异常:System.InvalidOperationException:Thekeyringdoesnotcontainavaliddefaultprotectionkey.Thedataprotectionsystemcannotcreateanewkeybecauseauto-generationofkeysisd

c# - 嵌套 $expands 的 Asp.net WebApi OData V4 问题

我在Asp.netWebApi(OWIN)上有一个ODataV4。一切都很好,除了当我尝试查询4​​级$expand时。我的查询如下:http://domain/entity1($expand=entity2($expand=entity3($expand=entity4)))我没有收到任何错误,但我的响应中没有预测最后一次展开。更多信息:我已将MaxExpandDepth设置为10。我所有的实体都是EntitySets。我正在使用ODataConventionModelBuilder。我打开了一个SQL分析器,可以看到查询(和结果)是正确的。它是在执行查询后发生的一些过滤器。我在网上

c# - Visual Studio 2017 使用 C# 7.2 发布 ASP.NET Core 应用程序

我有一个使用publicstaticasyncTaskMain()的Asp.NetMVCCore网站。为此,我已将调试和发布构建配置的语言版本设置为C#7.2(在属性->构建->高级对话框中,在csproj中仔细检查)。应用程序在调试和Release模式下都能正常构建和启动。现在,我尝试直接从VisualStudio201715.5.2(使用WebDeploy)将它发布到Azure网站,我得到了这个:Program.cs(17,29):ErrorCS8107:Feature'asyncmain'isnotavailableinC#7.0.Pleaseuselanguageversion

c# - 如何获取 ASP.NET Core 中已注册中间件的列表?

在ASP.NETCore中,您可以在用于Web主机构建器的启动类的Configure方法期间通过使用app.使用中间件(...)。但是,在调试期间,我如何获得已注册中间件提供者的列表?我看不到任何实际查看已为应用程序注册的中间件的方法。 最佳答案 从另一个人指出的问题与这个问题非常相似:由于某种原因,中间件列表并未公开。但是,在Debug模式下,可以通过检查IApplicationBuilderapp来获得它。Configure执行期间的变量方法,特别是_components非公共(public)成员。此非公开成员是IList>,包

c# - 使用 GetHashCode 比较相同的匿名类型是否安全?

给定两个相同的匿名类型对象:{msg:"hello"}//anonType1{msg:"hello"}//anonType2并假设它们没有解析为同一类型(例如,它们可能在不同的程序集中定义)anonType1.Equals(anonType2);//false此外,假设在编译时,我无法获取一个结构(例如anonType1),因为API仅公开object所以,为了比较它们,我想到了以下技巧:使用反射获取anonType1上的msg属性进行比较。将anonType1转换为dynamic类型并在动态成员上引用.msg以进行比较比较每个对象上.GetHashCode()的结果。我的问题是:使用

c# - ASP.NET MVC POST 错误地返回 HTTP 302

我找遍了,找不到这个问题的答案。我在ASP.NETMVC4中有一个简单的测试Controller,设置如下:publicclassTestController{[HttpGet]publicActionResultIndex(){MyModelmodel=newMyModel();model.Debug+="GETMethod";returnView(model);}[HttpPost]publicActionResultPost(MyModelmodel){model.Debug+="POSTMethod";returnView("Index",model);}}IndexView只

c# - AspNetSynchronizationContext 并等待 ASP.NET 中的延续

我注意到在异步ASP.NETWebAPIController方法中的await之后有一个意外的(我会说是冗余的)线程切换。例如,下面我希望在位置#2和3#看到相同的ManagedThreadId,但大多数情况下我在#3看到不同的线程:publicclassTestController:ApiController{publicasyncTaskGetData(){Debug.WriteLine(new{where="1)beforeawait",thread=Thread.CurrentThread.ManagedThreadId,context=SynchronizationConte